home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 September / CHIP Eylül 1998.iso / Slackwar / docs / ISP-Hookup-HOWTO < prev    next >
Text File  |  1997-09-25  |  33KB  |  949 lines

  1.   ISP-Hookup-HOWTO
  2.   Egil Kvaleberg, egil@kvaleberg.no
  3.   v1.24, 14 February 1997
  4.  
  5.   This document describes how to use Linux to connect to an Internet
  6.   Service Provider via a dial-up modem connection.  As well as the basic
  7.   dial-up procedure and IP establishment, email and news handling is
  8.   covered.
  9.  
  10.   1.  Introduction
  11.  
  12.   This description has been made to answer a few questions about how
  13.   dial-up ISP (Internet Service Provider) subscribers may configure and
  14.   use Linux.
  15.  
  16.   To aid those who will connect their Linux based machines to an ISP for
  17.   the first time, an attempt has been made to cover most issues
  18.   encountered.  This quite unavoidably will create a certain degree of
  19.   overlap with other Linux Howto-documents and LDP books.  Reference
  20.   should be made to these documents to provide better understanding and
  21.   detail.
  22.  
  23.   Much of the existing documentation is targeted towards users with a
  24.   certain degree of experience, and first time users will often have
  25.   trouble sorting out the relevant information.
  26.  
  27.   To simplify, the examples given will assume the following:
  28.  
  29.   ╖  User name: dirk
  30.  
  31.   ╖  Password: PrettySecret
  32.  
  33.   ╖  Internet service provider: acme.net
  34.  
  35.   ╖  Email server: mail.acme.net
  36.  
  37.   ╖  News server: news.acme.net
  38.  
  39.   ╖  Name server: 193.212.1.0
  40.  
  41.   ╖  Phone number: 12345678
  42.  
  43.   Our dirk will be calling his machine roderick.
  44.  
  45.   All references in the table above should naturally be replaced by
  46.   whatever is valid for the ISP one is using.  Often, just a minimum of
  47.   changes will otherwise be required for users with different ISPs.  I
  48.   would like to be informed about what problems you encounter on this
  49.   account.
  50.  
  51.   1.1.  New versions of this document
  52.  
  53.   New versions of this document will be periodically posted to
  54.   comp.os.linux.answers.  They will also be added to the various
  55.   anonymous FTP sites who archive such information, including:
  56.  
  57.   ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO
  58.  
  59.   In addition, you should generally be able to find this document on the
  60.   Linux Documentation Project page via:
  61.  
  62.   http://sunsite.unc.edu/LDP/
  63.  
  64.   Finally, the very latest version of this document should also be
  65.   available in various formats from:
  66.  
  67.   ftp://ftp.sn.no/user/egilk/ISP-Hookup-HOWTO.txt
  68.  
  69.   ftp://ftp.sn.no/user/egilk/ISP-Hookup-HOWTO.ps.gz
  70.  
  71.   ftp://ftp.sn.no/user/egilk/ISP-Hookup-HOWTO.tar.gz
  72.  
  73.   http://home.sn.no/home/egilk/ISP-Hookup-HOWTO.html
  74.  
  75.   1.2.  Feedback
  76.  
  77.   All comments, error reports, additional information and criticism of
  78.   all sorts should be directed to:
  79.  
  80.   egil@kvaleberg.no
  81.  
  82.   http://home.sn.no/home/egilk/
  83.  
  84.   1.3.  Disclaimer
  85.  
  86.   No liability for the contents of this documents can be accepted.  Use
  87.   the concepts, examples and other content at your own risk.
  88.   Additionally, this is an early version, with many possibilities for
  89.   inaccuracies and errors.
  90.  
  91.   One of many possible setups will be described. In the Linux world,
  92.   there is usually a number of ways in which to accomplish things.
  93.   Paragraphs containing hints to alternatives are marked by ALT: Please
  94.   also note that FTP-references often will change slightly as new
  95.   versions of programs arrive.
  96.  
  97.   As far as I know, only programs that under certain terms may be used
  98.   or evaluated for personal purposes will be described. Most of the
  99.   programs will be available complete with source under GNU-like terms.
  100.  
  101.   1.4.  Copyright information
  102.  
  103.   This document is copyrighted (c)1996 Egil Kvaleberg and distributed
  104.   under the following terms:
  105.  
  106.   ╖  Linux HOWTO documents may be reproduced and distributed in whole or
  107.      in part, in any medium physical or electronic, as long as this
  108.      copyright notice is retained on all copies. Commercial
  109.      redistribution is allowed and encouraged; however, the author would
  110.      like to be notified of any such distributions.
  111.  
  112.   ╖  All translations, derivative works, or aggregate works
  113.      incorporating any Linux HOWTO documents must be covered under this
  114.      copyright notice.  That is, you may not produce a derivative work
  115.      from a HOWTO and impose additional restrictions on its
  116.      distribution. Exceptions to these rules may be granted under
  117.      certain conditions; please contact the Linux HOWTO coordinator at
  118.      the address given below.
  119.  
  120.   ╖  If you have questions, please contact Greg Hankins, the Linux HOWTO
  121.      coordinator, at
  122.  
  123.   gregh@sunsite.unc.edu Finger for phone number and snail mail address.
  124.  
  125.   2.  How do I connect to the rest of the world?
  126.  
  127.   It will be assumed that we have installed the essential networking
  128.   software modules (e.g. essential parts of the Slackware N-series), and
  129.   that you have set up which serial port that is to be used for the
  130.   /dev/modem.
  131.  
  132.   The default configuration will usually only allow direct access to
  133.   /dev/modem as user root.
  134.  
  135.   To connect to ISP shell accounts directly, and to experiment with
  136.   connection sequences, you may use the minicom program.  It is pretty
  137.   straight forward to use.
  138.  
  139.   2.1.  The basic configuration
  140.  
  141.   Configuration of the machine for use on the net should be done as user
  142.   root.  Before proceeding any further, ensure that the file
  143.   /etc/hosts.deny contains the following line:
  144.  
  145.        ALL: ALL
  146.  
  147.   You would normally want to allow yourself, so add the following line
  148.   to /etc/hosts.allow:
  149.  
  150.        ALL: LOCAL
  151.  
  152.   Or if you insist:
  153.  
  154.        ALL: 127.0.0.1
  155.  
  156.   For the following, note that it is meant for those connected via PPP
  157.   and with a dynamic IP address. If you have the benefit of a fixed con¡
  158.   nection, there will be some differences.
  159.  
  160.   It is nice to have a name connected to the machine, a name that the
  161.   dynamic IP user really can select as he or she pleases.  Put the name
  162.   in /etc/HOSTNAME:
  163.  
  164.        roderick
  165.  
  166.   The next step is to set up the name server in /etc/resolv.conf:
  167.  
  168.   search .
  169.   nameserver 193.212.1.0
  170.  
  171.   The name server must be specified by a numeric IP address, and will be
  172.   different from ISP to ISP.  If required, you can have up to three dif¡
  173.   ferent servers, each on a separate line.  They will be requested in
  174.   the sequence in which they are listed.
  175.  
  176.   If you want to be able to use names like somemachine as an
  177.   abbreviation for somemachine.acme.net, you must replace the first line
  178.   with:
  179.  
  180.        search acme.net
  181.  
  182.   A certain minimum of configuration will also be required in
  183.   /etc/hosts.  Most users will be able to manage with:
  184.  
  185.        127.0.0.1 localhost
  186.        0.0.0.0   roderick
  187.  
  188.   Those with a fixed IP-address will obviously replace 0.0.0.0 with
  189.   this.
  190.  
  191.   Likewise, a minimum /etc/networks is:
  192.  
  193.        loopback  127.0.0.0
  194.        localnet  0.0.0.0
  195.  
  196.   You should also set your external mail domain in /etc/mailname:
  197.  
  198.        acme.net
  199.  
  200.   The username and password at the ISP must be specified in
  201.   /etc/ppp/pap-secrets
  202.  
  203.        dirk * PrettySecret
  204.  
  205.   For those ISPs using CHAP instead of PAP, the filename is
  206.   /etc/ppp/chap-secrets.
  207.  
  208.   Finally, the nitty gritty regarding the connection procedure itself
  209.   must be specified before PPP can be initiated.  This is done in
  210.   /etc/ppp/chatscript:
  211.        TIMEOUT 5
  212.        "" ATZ
  213.        OK ATDT12345678
  214.        ABORT "NO CARRIER"
  215.        ABORT BUSY
  216.        ABORT "NO DIALTONE"
  217.        ABORT WAITING
  218.        TIMEOUT 45
  219.        CONNECT ""
  220.        TIMEOUT 5
  221.        "name:" ppp
  222.  
  223.   Details here may have to be tuned somewhat.  The phone number in the
  224.   third line must of course be set as required.  Some users may need to
  225.   replace the ATZ modem initialization string with something more tai¡
  226.   lored for the modem being used.  The last line specifies that one is
  227.   expecting the prompt name:, and that the response should be ppp when
  228.   it arrives.  Other systems may have other login procedures.
  229.  
  230.   To actually initiate a call, the PPP-protocol may be initiated by
  231.   issuing the following command:
  232.  
  233.        exec pppd connect \
  234.             'chat -v -f /etc/ppp/chatscript' \
  235.              -detach crtscts modem defaultroute \
  236.              user dirk \
  237.              /dev/modem 38400
  238.  
  239.   We should now be on-air, and stay up until the program is killed by
  240.   typing a Ctrl-C.  Any messages concerning the connection will be
  241.   appended to the system logs. To read them, try:
  242.  
  243.        tail /var/adm/messages
  244.  
  245.   As long as PPP is up, you will have direct access to the Internet, and
  246.   may use programs like ftp, ncftp, rlogin, telnet, finger etc.  All
  247.   these programs should be part of the network package.
  248.  
  249.   Further information concerning PPP is also available from:
  250.  
  251.   /usr/lib/ppp/README.linux
  252.  
  253.   /usr/lib/ppp/README.linux-chat
  254.  
  255.   Finally, an additional word about safety.  The file /etc/inetd.conf
  256.   lists all services that your machine will offer externally.  With the
  257.   /etc/hosts.deny file we have made, no external access will be allowed.
  258.   For those who need it, access must be allowed explicitly in
  259.   /etc/hosts.allow.  Local traffic may be allowed by:
  260.  
  261.        ALL: LOCAL
  262.  
  263.   See also man 5 hosts_access.
  264.  
  265.   A final small issue: A certain confusion exists regarding the names of
  266.   the POP-protocols.  A definition in /etc/services compatible with just
  267.   about everything is:
  268.  
  269.        pop2      109/tcp   pop-2          # PostOffice V.2
  270.        pop3      110/tcp   pop-3 pop # PostOffice V.3
  271.  
  272.   ALT: Instead of chatscript, one might use the much more flexible dip.
  273.   But not in connection with diald.
  274.  
  275.   ALT: Those fortunate enough to have a permanent TCP/IP connection via
  276.   e.g. an Ethernet may safely ignore anything about PPP, and rather
  277.   start concentrating about setting up their network card.
  278.  
  279.   ALT: Others may not have the possibility of using PPP, but may be able
  280.   to use SLIP instead, for which there is support in much the same
  281.   manner as for PPP. Another possibility is UUCP.  Others again may have
  282.   to rely on exchange of news and email be means of SOUP.  A description
  283.   for the latter case may be found in:
  284.  
  285.   ftp://ftp.sn.no/user/bjorn/Linux-offline.tgz
  286.  
  287.   The TERM program is also an option. Refer to the Term-HOWTO.
  288.  
  289.   3.  How do I surf?
  290.  
  291.   If you think that text is the most important, you might want to use
  292.   the Lynx Web-browser. It is available from:
  293.  
  294.   ftp://sunsite.unc.edu/pub/Linux/system/Network/info-
  295.   systems/lynx-2.3.bin2.tar.gz
  296.  
  297.   If you have installed X-windows, you can also use one of the many
  298.   graphical browsers. Chimera may be found at:
  299.  
  300.   ftp://sunsite.unc.edu/pub/Linux/system/Network/info-
  301.   systems/chimera-1.65.bin.ELF.tar.gz
  302.  
  303.   http://www.unlv.edu/chimera/
  304.  
  305.   Mosaic:
  306.  
  307.   ftp://sunsite.unc.edu/pub/Linux/system/Network/info-
  308.   systems/Mosaic-2.7b1-aout.tgz
  309.  
  310.   ftp://ftp.NCSA.uiuc.edu/Web/Mosaic/Unix/binaries/2.6
  311.  
  312.   Mozilla (Netscape):
  313.  
  314.   ftp://sunsite.unc.edu/pub/Linux/system/Network/info-systems/netscape-
  315.   v11b3.tar.gz
  316.  
  317.   ftp://ftp.cs.uit.no/pub/www/netscape
  318.  
  319.   These browsers are constantly available in new and in various ways
  320.   exciting versions.
  321.  
  322.   Use and evaluation of these programs is subject to certain terms.
  323.   Please observe them.
  324.   4.  How do I send and receive email?
  325.  
  326.   First of all, ensure that sendmail is installed.  Sendmail sorts
  327.   internal and out-bound mail, and will buffer out-bound mail until such
  328.   time it is possible to forward it.
  329.  
  330.   Sendmail is based on a configuration found in /etc/sendmail.cf.  An
  331.   example suitable for ISP users can be found in:
  332.  
  333.   ftp://ftp.sn.no/user/egilk/sendmail.cf This is based on procmail as a
  334.   delivery agent, but may easily be changed to use deliver.
  335.  
  336.   It is if course required to have an official domain address for out-
  337.   bound mail, something which is specified in /etc/sendmail.cf:
  338.  
  339.        # who I masquerade as (null for no masquerading)
  340.        DMacme.net
  341.  
  342.   This assumes that you have the same user name locally as you have at
  343.   your ISP.  Sendmail is now configured for sending directly to the
  344.   recipient.  To avoid long and repeated connections in those cases
  345.   where the connection to the receiving end is slow and irregular, is is
  346.   usually nice to use ones ISP as a buffer store.  This can be specified
  347.   by the DS specification:
  348.  
  349.        # "Smart" relay host (may be null)
  350.        DSmail.acme.net
  351.  
  352.   Beware that sendmail is somewhat sensitive to handling of tab stop
  353.   characters in sendmail.cf.  You might want to use the vi editor to
  354.   ensure that these tab characters are retained unchanged.
  355.  
  356.   Email reception can often be performed via the POP3 protocol, which
  357.   can be initiated every time the connection is brought up.  A script
  358.   for testing this is:
  359.  
  360.        sendmail -q
  361.        popclient -3 -v mail.acme.net -u dirk -p "PrettySecret" \
  362.               -k -o /usr/spool/mail/dirk
  363.  
  364.   This script may be started after PPP connection has been established.
  365.   Beware that this script is just for testing, so ensure that the local
  366.   mailbox is left untouched while it runs.  The -k option means that the
  367.   mail is kept in the ISP mailbox, and you are simply given a copy of
  368.   the mail.  You would of course want to remove this option once you are
  369.   confident that your setup is working.
  370.  
  371.   Beware that the password will show on the command line. This really
  372.   should be fixed ASAP.
  373.  
  374.   A safe and better version of this script may be found at:
  375.  
  376.   ftp://ftp.sn.no/user/egilk/pop-script.tar.gz
  377.  
  378.   This version of the script requires that procmail is installed, but
  379.   that is something you'll never regret anyway:
  380.  
  381.   ftp://sunsite.unc.edu/pub/Linux/system/Mail/mailhandlers/procmail-3.10-2.tar.gz
  382.  
  383.   Procmail is a simple and flexible tool that can sort incoming email
  384.   based on a large range of criteria. In addition to being able to
  385.   handle automated tasks like vacation messages and such.
  386.  
  387.   Note that when we use procmail directly as in this case, the situation
  388.   is somewhat different from what is described in the procmail
  389.   documentation.  A .forward is not required, and we also don't need a
  390.   .procmailrc.  The latter is only required if we want to sort the mail.
  391.  
  392.   The user interface for reading and sending of email can be found in
  393.   programs like Pine or Elm.
  394.  
  395.   ALT: Fetchmail has recently become a most interesting alternative to
  396.   popclient.  The latest version is available from:
  397.  
  398.   ftp://ftp.ccil.org/pub/esr/fetchmail/fetchmail-3.3.tar.gz
  399.  
  400.   ALT: For an ordinary dial-up ISP user it is not really necessary to
  401.   have the sendmail daemon active.  To reduce the resource usage, one
  402.   may thus comment out any startup of sendmail, as is usually found in
  403.   /etc/rc.d/rc.M.
  404.  
  405.   ALT: In place of sendmail one might use the simpler smail.  You'll
  406.   find a good description of it (as well as most other things mentioned
  407.   here) in the Linux Network Administrator's Guide.
  408.  
  409.   ALT: There is also an m4 macro package for making a fresh sendmail.cf.
  410.   For a simple installation it might be just as well to modify an
  411.   existing configuration.
  412.  
  413.   ALT: There are also simpler although less flexible alternatives. Pine
  414.   may run stand-alone as long as it is configured properly, for
  415.   instance. It might even be possible to use newer versions of some web-
  416.   browsers.
  417.  
  418.   ALT: Many are very enthusiastic regarding the Emacs companion Gnus as
  419.   an email and news handler. Further information can be found at:
  420.  
  421.   http://www.ifi.uio.no/~larsi/
  422.  
  423.   ALT: An alternative to popclient is pop-perl5.  It is available from:
  424.  
  425.   ftp://sunsite.unc.edu/pub/Linux/System/Mail/pop-perl5-1.1.tar.gz
  426.  
  427.   5.  News
  428.  
  429.   5.1.  How do I set up an online news-reader?
  430.  
  431.   As long as PPP is active, it will be possible to read news online.
  432.   There are lots of available programs.  Two simple alternatives are
  433.   rtin and trn.
  434.  
  435.   To start reading news, the only thing required in terms of
  436.   configuration in most cases is to do (usually once and for all in the
  437.   file .profile):
  438.  
  439.        export NNTPSERVER=news.acme.net
  440.  
  441.   To get the From-address correct in postings, some programs may
  442.   require:
  443.  
  444.        export NNTP_INEWS_DOMAIN=acme.net
  445.  
  446.   5.2.  How do I set up an offline news-reader?
  447.  
  448.   To be able to read news while offline, and thus reduce phone bills and
  449.   give greater flexibility, one must set up a local news-spool of one
  450.   sort or the other.  This requires some configuration, and there will
  451.   also be a certain amount of disk space involved.  After initial setup,
  452.   things should run more or less by themselves, with only some attention
  453.   needed from time to time.
  454.  
  455.   Two different solutions will be described here.
  456.  
  457.   5.3.  How do I set up C News?
  458.  
  459.   The solution described here is based on the news-server C News and the
  460.   NNTP protocol.  C News was originally targeted towards another sort of
  461.   configuration, but is flexible enough to handle our situation too.
  462.   One might also use the more recent INN news server, but it might
  463.   require a bit more in terms of resources.  Any way, be careful not to
  464.   install both; they don't live together easily.
  465.  
  466.   It is crucial that all maintenance of news is done while logged in as
  467.   user news, and that all configuration files is placed in
  468.   /usr/lib/news.  One way of handling this is, while logged in as root
  469.   to write su news; cd.
  470.  
  471.   The most important files in the configuration are:
  472.  
  473.   ╖  active is an overview over active newsgroups.  It is updated as
  474.      required by the command addgroup, e.g.  addgroup
  475.      comp.os.linux.networking y.
  476.  
  477.   ╖  organization should simply contain whatever you want in the
  478.      Organization: header field, in our case:
  479.  
  480.        Dirk Gently's Holistic Detective Agency
  481.  
  482.   ╖  mailname should in our case be set to acme.net.
  483.  
  484.   ╖  whoami is set to the name of your site in the Path: thread.  In a
  485.      setup as described here, using NewsX, this name will never leave
  486.      the machine, so you can set this to whatever you like as long as
  487.      you are pretty sure it is unique. In this case roderick.
  488.  
  489.   ╖  sys controls fetching and further distribution of news.  We will
  490.      assume the ISP in our case adds acme.net to the Path, and that this
  491.      is the only news source we have.  The example given really tells
  492.      that we will accept everything that arrives, and that we will only
  493.      post news to acme.net that it hasn't seen before, and is originally
  494.      posted at our own site.  In this simplified setup we assume that
  495.      the all groups will come from a single source.  /all specifies the
  496.      distribution, and must be included.  The letter F says that
  497.      (pointers to) outgoing news articles will be collected in a file.
  498.  
  499.        ME:all/all::
  500.        acme/acme.net:all,!junk/all:FL:
  501.  
  502.   ╖  A subdirectory for the outgoing news must be created, in our case:
  503.  
  504.        mkdir /var/spool/news/out.going/acme
  505.  
  506.   ╖  mailpaths controls posting in moderated groups, although this task
  507.      may usually be left to the ISP.
  508.  
  509.   C News needs a certain degree of daily maintenance, but this can be
  510.   specified once and for all via the command crontab -e issued as user
  511.   news.  A suggested setup follows; it can be tuned as required:
  512.  
  513.        # maintain incoming and outgoing batches
  514.        10,40 *  * * * /usr/lib/newsbin/input/newsrun
  515.  
  516.        # expire C News, once a day
  517.        30 0  * * * /usr/lib/newsbin/expire/doexpire
  518.  
  519.        # monitor and report if needed
  520.        00 2  * * sat /usr/lib/newsbin/maint/addmissing
  521.        40 3  * * * /usr/lib/newsbin/maint/newswatch
  522.        50 3  * * * /usr/lib/newsbin/maint/newsdaily
  523.  
  524.   newsrun moves articles in and out (twice every hour), doexpire will
  525.   delete articles as they get old (every night at 00:30), and the three
  526.   last commands does various supervisory and error correcting tasks.
  527.  
  528.   One should also ensure that things are cleaned up when starting the
  529.   machine. As user root, add the following line to /etc/rc.d/rc.local:
  530.  
  531.        su news -c /usr/lib/newsbin/maint/newsboot
  532.  
  533.   News may be collected via the program NewsX, picking news from an
  534.   NNTP-server.  The program can be found at:
  535.  
  536.   ftp://sunsite.unc.edu/pub/Linux/system/news/transport/newsx-0.9.tar.gz
  537.   Or:
  538.  
  539.   ftp://ftp.sn.no/user/egilk/newsx-0.9.tar.gz
  540.  
  541.   Setting up NewsX is quite simple. Installation is a classic case of:
  542.  
  543.        make
  544.        su
  545.        make install
  546.        exit
  547.  
  548.   With the setup outlined here, all you have to do is to create the
  549.   groups you want to read using the "addgroup" command.
  550.  
  551.   To fetch articles, user news issues the following commands (assuming
  552.   communication via PPP or similar is up):
  553.  
  554.        newsrun
  555.        newsx acme news.acme.net
  556.        newsrun
  557.  
  558.   The option -d gives continuous printout to the screen.  Refer to the
  559.   NewsX documentation for further information.
  560.  
  561.   NewsX will also take care of posting of outgoing news.
  562.  
  563.   To control disposal of articles as they get old, a file explist is
  564.   required.  The comments in this example should explain what we want to
  565.   do:
  566.  
  567.        # hold onto history lines 14 days, nobody gets >120 days
  568.        /expired/           x    14   -
  569.        /bounds/            x    0-1-120 -
  570.  
  571.        # retain these for 2 months
  572.        comp.sources,comp.os.linux.all     x    60   -
  573.  
  574.        # noise gets thrown away fast
  575.        junk,control             x    2    -
  576.  
  577.        # default:  14 days, no archive
  578.        all                 x    14   -
  579.  
  580.   ALT: In a small news-spool, one will often not need the newsgroup
  581.   control.  The traffic is huge compared to the usefulness. The main
  582.   point is that articles will be canceled, and that groups may be
  583.   created automatically.  To ensure that control messages containing
  584.   newgroup not shall mess up things for us, a file called newgroupperm
  585.   specifies what we will allow:
  586.  
  587.   comp.os.linux  tale@uunet.com yv
  588.   all       any       nq
  589.  
  590.   In this example, all proper groups under comp.os.linux will be created
  591.   (y), and the user news will be notified (v).  Everything else will be
  592.   silently (q) ignored (n).  The last line is sufficient if you want to
  593.   create all groups manually.
  594.  
  595.   ALT: Alternatives to NewsX are suck, or slurp combined with postit.
  596.   Slurp uses the NNTP NEWNEWS which will put severe loads on many news
  597.   server.
  598.  
  599.   5.4.  How do I set up Leafnode?
  600.  
  601.   A different solution altogether is to install the integrated package
  602.   leafnode.  This will handle all tasks required for a personal news
  603.   spool, and is easy to configure.  It is available via:
  604.  
  605.   http://www.troll.no/freebies/leafnode.html
  606.  
  607.   As for C News, all news maintenance should be performed as user news.
  608.  
  609.   The home directory for leafnode is in /usr/lib/leafnode.  To install,
  610.   write:
  611.  
  612.        cd /usr/lib/leafnode
  613.        tar -xzvf leafnode-0.8.tgz
  614.        cd leafnode-0.8
  615.        make
  616.        su
  617.        make install
  618.  
  619.   While still being logged in as root, change the line that controls
  620.   NNTP in /etc/inetd.conf:
  621.  
  622.        nntp  stream  tcp  nowait  news  /usr/sbin/tcpd /usr/local/sbin/leafnode
  623.  
  624.   Activate it by:
  625.  
  626.        killall -HUP inetd
  627.  
  628.   Return to user  news by writing exit.  In /usr/lib/leafnode/config
  629.   change the line that defines the NNTP server.  In our case:
  630.  
  631.        server = news.acme.net
  632.  
  633.   Leafnode will look after itself by adding the following command via
  634.   crontab -e as user news:
  635.  
  636.        # expire Leafnode, once a day
  637.        0 4 * * * /usr/local/sbin/texpire
  638.  
  639.   The news exchange is also done as user news by the following command
  640.   (assuming PPP is up and running):
  641.  
  642.        /usr/local/sbin/fetch
  643.  
  644.   Users who wants to read news should then use the recipe in How do I
  645.   set up an online news-reader?, except that they configure for the
  646.   local machine, i.e:
  647.  
  648.        export NNTPSERVER=localhost
  649.  
  650.   That should be all there is to it.  The first fetch will transfer a
  651.   list of available newsgroups.  Leafnode will then monitor what groups
  652.   the users are requesting, and adapt to this the next time it is
  653.   activated.
  654.  
  655.   ALT: An alternative to leafnode is nntpcache, available from:
  656.  
  657.   ftp://ftp.suburbia.net/pub/nntpcache/nntpcache.tgz
  658.  
  659.   6.  How do I automate the connection procedure?
  660.  
  661.   Automated handling of news and email is quite easy to implement in
  662.   Linux.
  663.  
  664.   First and foremost one should make a /usr/lib/ppp/ppp-on that
  665.   initiates the ISP connection.  Often, this file will simply contain
  666.   the following:
  667.  
  668.        /usr/sbin/pppd
  669.  
  670.   Further specification will be performed in /etc/ppp/options:
  671.  
  672.        connect "/usr/lib/ppp/chat -v -f /etc/ppp/chatscript"
  673.        crtscts
  674.        modem
  675.        defaultroute
  676.        asyncmap 00000000
  677.        user dirk
  678.        /dev/modem 38400
  679.  
  680.   To end a connection, use the supplied version of /usr/lib/ppp/ppp-off.
  681.  
  682.   Having tested the functionality of these two scripts, one must then
  683.   write scripts that perform the various tasks. The script to collect
  684.   email has been described before, and we will here assume it is located
  685.   at /home/dirk/pop.
  686.  
  687.   A script for exchange of email can then be produced in /root/mail:
  688.  
  689.        #! /bin/sh
  690.        #
  691.        # exchange mail
  692.        # 10 minutes timeout:
  693.        TIMEOUT=600
  694.        DT=10
  695.  
  696.        # kick sendmail:
  697.        sendmail -q &
  698.  
  699.        # retrieve mail:
  700.        su dirk -c /home/dirk/pop
  701.  
  702.        # wait for sendmail to terminate:
  703.        t=0
  704.        while ! mailq | grep -q "Mail queue is empty"; do
  705.            t=$[$t+$DT]
  706.            if [ $t -gt $TIMEOUT ] ; then
  707.             echo "sendmail -q timeout ($TIMEOUT).."
  708.             exit 1
  709.            fi
  710.            sleep $DT
  711.        done
  712.  
  713.        exit 0
  714.  
  715.   The script to exchange news may be placed in /usr/lib/news/news:
  716.  
  717.        #!/bin/sh
  718.        #
  719.        # exchange news
  720.        # must be run as news:
  721.        cd /usr/lib/news
  722.  
  723.        #update the outgoing batch (C News):
  724.        /usr/lib/newsbin/input/newsrun < /dev/null
  725.  
  726.        #exchange news:
  727.        /usr/lib/newsbin/newsx acme news.acme.net
  728.  
  729.        #and flush the incoming batch:
  730.        /usr/lib/newsbin/input/newsrun < /dev/null
  731.  
  732.   A script to connect the various bits and pieces remains, and can be
  733.   placed in /root/news+mail:
  734.  
  735.   #!/bin/sh
  736.   #
  737.   # exchange news and email
  738.   # must be run as root
  739.   #
  740.   if ! /usr/lib/ppp/ppp-on; then
  741.       exit 1
  742.   fi
  743.   trap "/usr/lib/ppp/ppp-off" 1 2 3 15
  744.  
  745.   #exchange news+mail:
  746.   /root/mail &
  747.   su news -c ~news/news
  748.   wait
  749.  
  750.   #disconnect..
  751.   /usr/lib/ppp/ppp-off
  752.  
  753.   #update the incoming batch (C News):
  754.   su news -c /usr/lib/newsbin/input/newsrun < /dev/null &
  755.  
  756.   exit 0
  757.  
  758.   It is quite easy to make an extension to the above that only will
  759.   establish a connection if outgoing email and news is present.  Lets
  760.   call it /root/news+mail.cond, and keep in mind that the name of the
  761.   outgoing news-spool must be updated to suit:
  762.  
  763.        #!/bin/sh
  764.        #
  765.        # exchange news and email, only if outgoing news or mail
  766.        # (C News spool)
  767.        if [ -s /var/spool/news/out.going/acme/togo ] ||
  768.            ! ( mailq | grep -q "Mail queue is empty"); then
  769.             /root/news+mail
  770.        fi
  771.  
  772.   The only thing remaining is to specify when all this is going to
  773.   happen.  This is done using the command crontab -e as root.  Let us
  774.   assume that we always want to exchange news and mail at 07:00 in the
  775.   morning, and after that every 4th hour assuming there are outgoing
  776.   email and news:
  777.  
  778.        00 7      * * *     /root/news+mail
  779.        00 11,15,19,23 * * *     /root/news+mail.cond
  780.  
  781.   Ensure that every component is tested well before you connect them
  782.   together. One may later add several other tasks, such as adjustment of
  783.   the time of day (using ntpdate), and automatic update (mirroring) of
  784.   locally maintained WWW and FTP files up to the ISP (using make and
  785.   ftp).
  786.  
  787.   ALT: Depending on ones preferences, it is also possible to turn the
  788.   process upside down. Every time a PPP link is initiated, the script
  789.   /etc/ppp/ip-up will be started.  One may here add whatever magic is
  790.   required to start exchange of email and news.  See man pppd for
  791.   further detail.
  792.  
  793.   ALT: It is also possible to automatically connect PPP whenever network
  794.   traffic is detected.  This is in many ways the more elegant solution,
  795.   but it is quite dependent on a good configuration to avoid frequent
  796.   (and costly) connections being made.  More information can be found
  797.   at:
  798.  
  799.   http://www.dna.lth.se/~erics/diald.html
  800.  
  801.   The diald utility is available from:
  802.  
  803.   ftp://sunsite.unc.edu/pub/Linux/system/network/serial/diald-0.16.tar.gz
  804.  
  805.   At the same location one will also find other variations on the theme
  806.   PPP connections.
  807.  
  808.   7.  Final words
  809.  
  810.   7.1.  Other things I should know about?
  811.  
  812.   ╖  Various error messages in the system will normally be issued as
  813.      internal email. To ensure that these will actually be read, one
  814.      should create an /etc/aliases.  Remember the command newaliases
  815.      every time you change this.  An example that should cover most
  816.      eventualities is:
  817.  
  818.        PostMaster: root
  819.        ftp: root
  820.        news: root
  821.        usenet: root
  822.        FaxMaster: root
  823.        fax: root
  824.        WebMaster: root
  825.        MAILER.DAEMON: root
  826.  
  827.   ╖  Many programs for Linux may be found at Sunsite, which is usually
  828.      quite busy.  But there are many mirrors, and every time there is a
  829.      reference to ftp://sunsite.unc.edu/pub/Linux/.. one should try to
  830.      use a mirror close to home, e.g.
  831.      ftp://ftp.nvg.unit.no/pub/linux/sunsite/...
  832.  
  833.   ╖  If you happen to be migrating from Yarn, it should be possible to
  834.      convert these to standard folders using the yarn2mf available at:
  835.  
  836.   ftp://ftp.sn.no/user/egilk/yarn2mf.zip
  837.  
  838.   8.  ISP specific information
  839.  
  840.   More specific information for certain ISPs is available from a variety
  841.   of sources:
  842.  
  843.   Demon Internet (demon.co.uk)
  844.  
  845.   ftp://ftp.demon.co.uk/pub/unix/linux/Demon/slack3.0.help.tgz
  846.  
  847.   Easynet TBA
  848.  
  849.   Netcom
  850.   http://www.netcom.com/bin/webtech/NetCruiser/Operating_Systems/Linux/linux.cfg.html
  851.  
  852.   PowerTech, Schibstednett, Telenor Online
  853.  
  854.   http://home.sn.no/home/egilk/no-isp.html
  855.  
  856.   Primenet TBA
  857.  
  858.   Stanford
  859.  
  860.   http://www-leland.stanford.edu/~wkn/Linux/network/network.html
  861.  
  862.   If you know of ISP specific information not listed here, please get in
  863.   touch.
  864.  
  865.   8.1.  How do I learn more?
  866.  
  867.   The Linux Documentation Project book called Linux Network
  868.   Administrator's Guide by Olaf Kirch is pretty mandatory for anyone
  869.   that will set up and maintain anything involving TCP/IP and Internet:
  870.  
  871.   ftp://sunsite.unc.edu/pub/Linux/docs/linux-doc-project/network-
  872.   guide/nag-1.0.ascii.tar.gz
  873.  
  874.   The documentation that follows each software package will normally
  875.   give you all the detailed information you need, if not always the
  876.   overview. The man-pages will be the first place to look. Try for
  877.   instance:
  878.  
  879.        man pppd
  880.  
  881.   You will also find some documentation about certain programs in the
  882.   /usr/doc tree, although this is not always well structured.
  883.  
  884.   The following HOWTOs will be highly relevant:
  885.  
  886.   ╖  Installation-HOWTO will get the basics sorted.
  887.  
  888.   ╖  NET-2-HOWTO is a very thorough description of installation and
  889.      setup of the NET code.  Much of this should already have been done
  890.      if you use a standard Linux distribution (e.g. Slackware, Red Hat,
  891.      Debian).  But many sections on setup and troubleshooting will be
  892.      very worthwhile.
  893.  
  894.   ╖  Mail-HOWTO explains how to configure various tools.  Again, much of
  895.      this will already have been done for you when you install a
  896.      standard Linux distribution.
  897.  
  898.   ╖  News-HOWTO is for setting up a (conventional) news spool.
  899.  
  900.   ╖  Tiny-News covers yet another alternative for collecting news.
  901.  
  902.   ╖  PPP-HOWTO is a good description of problems you may encounter when
  903.      setting up a PPP connection.
  904.   ╖  Serial-HOWTO contains everything you need to know about setting up
  905.      serial ports.
  906.  
  907.   ╖  Mail-Queue tells you how to send up sendmail to always queue remote
  908.      mail but deliver local mail at once.
  909.  
  910.   Red Hat has a mailing list for PPP issues; to join send an email to
  911.  
  912.   redhat-ppp-list-request with the subject line
  913.  
  914.        subscribe
  915.  
  916.   8.2.  Thanks to
  917.  
  918.   Information here is collected from many sources. Thanks to the
  919.   following that either indirectly or directly have contributed:
  920.  
  921.        Adam Holt <holt@graphics.lcs.mit.edu>
  922.        Arne Coucheron <arneco@oslonett.no>
  923.        Arne Riiber <riiber@oslonett.no>
  924.        Arnt Gulbrandsen <agulbra@troll.no>
  925.        Bjorn Steensrud <bjornst@powertech.no>
  926.        Gisle Hannemyr <gisle@a.sn.no>
  927.        Hans Amund Rosbach <haro@sesam.dnv.no>
  928.        Hans Peter Verne <hpv@ulrik.uio.no>
  929.        Harald T Alvestrand <Harald.T.Alvestrand@uninett.no>
  930.        Harald Terkelsen  <Harald.Terkelsen@adm.hioslo.no>
  931.        Haavard Engum <hobbes@interlink.no>
  932.        James Youngman <JYoungman@vggas.com>
  933.        Johan S. Seland <johanss@sn.no>
  934.        John Phillips <john@linux.demon.co.uk>
  935.        Jorn Lokoy <jorn@oslonett.no>
  936.        Kenneth Tjostheim <kenneth.tjostheim@asplanviak.no>
  937.        Kjell M. Myksvoll <kjell.myksvoll@fou.telenor.no>
  938.        Kjetil T. Homme <kjetilho@math.uio.no>
  939.        Michael Meissner <meissner@cygnus.com>
  940.        N J Bailey <N.J.Bailey@leeds.ac.uk>
  941.        Nicolai Langfeldt <janl@math.uio.no>
  942.        Ove Ruben R Olsen <Ove.R.Olsen@ub.uib.no>
  943.        R. Bardarson <ronb@powernet.net>
  944.        Steinar Fremme <steinar@fremme.no>
  945.        Sverre H. Huseby <sverrehu@ifi.uio.no>
  946.        Trond Eivind Glomsrod <teg@stud.imf.unit.no>
  947.        Tommy Larsen <tommy@mix.hive.no>
  948.  
  949.